package com.pro.service;

import com.pro.pojo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CourseService {
    //获取ztree商品树
    List<JsCourseClass> getCourseTree();

    //树节点的添加
    boolean addCourseTreeNode(JsCourseClass courseClass);

    //树节点的删除 根据id
    boolean delCourseTreeNode(Integer id);

    //树节点的修改
    boolean editCourseTreeNode(String name,Integer id);

    //点击节点，展示对应类别下课程信息
    List<JsCourse> getCheckedCourse(Integer classId);

    //获取课程table
    List<JsCourse> getCourseTable();

    //根据审核记录表审核状态获取table
    List<JsCourse> getCourseTableByResult(Integer result);

    //查看所有课程数量
    Integer getCourseCounts();

    //查看课程上架状态的数量
    Integer getCourseStatus(Integer courseStatus);

    //查看课程审核状态的数量
    Integer getCourseCstatus(Integer result);

    //根据课程上架的状态查询课程
    List<JsCourse> getCourseTableByStatus(Integer courseStatus);

    //根据课程审核的状态查询课程
    List<JsCourse> getCourseTableByCstatus(Integer courseCstatus);

    //查询所有课程分类 给课程分类的下拉框赋值
    List<JsCourseClass> getCourseClassAll();

    //高级检索
    List<JsCourse> getCourseRetrieval(JsCourse course);

    //课程的模糊查
    List<JsCourse> getCourseSearch(String  courseName,String name,Integer courseNprice);

    //根据订单id查询课程详细信息
    JsCourse getCourseByOrderId(Integer orderId);

    //根据课程id修改课程的上架状态
    boolean updateCourseStatus(Integer courseStatus, Integer courseId);

    //添加商品(待审核状态)
    boolean addCourse(JsCourse course);
    //根据课程id查询
    JsCourse getCourseById(Integer id);
    //添加审核表
    boolean addCourseRecord(SyCourseRecord courseRecord);
    //查询所有课程序号
    List<JsCourse> getCourseIdAll();

    //审核页面的模糊查
    List<JsCourse> getCourseExamineSearch(String  courseName, String name, String trueName);

    //商品审核
    boolean courseExamine(Integer implementId,String implementDate,Integer result,String remarks,Integer courseId);

    //编辑商品
    boolean updateCourse(JsCourse course);

    //查询课程操作日志
    List<JsLog> getCourseOperationLog();

    //课程操作日志的模糊查
    List<JsLog> getCourseOperationLogSearch(String trueName,String remark,Integer type,String createDate);

    //查看历史及格修改记录
    List<SyDictData> getCoursePrice(String dictLabel,String dictValue,String createTime);

    //查询个人商品
    List<JsCourse> getCourseByCreateId(Integer createId);

    //个人课程的模糊查询
    List<JsCourse> getCourseByCreateIdSearch(String courseName, String coursePrimary, String courseNprice,Integer createId);

    //个人课程高级检索
    List<JsCourse> getCourseByCreateIdRetrieval(JsCourse course);

    //删除商品 //删除审核记录
    boolean delCourseByCourseId(Integer courseId);

    //删除商品对应的评论
    boolean delCommentByCommodityId(Integer commodityId);

    //删除审核记录
    boolean delCourseRecord(Integer courseId);

    //查询商品的评论数量
    Integer getCommentCounts(Integer commodityId);

    //查看不同课程对应的评论
    List<JsComment> getCommentByCommodityId(Integer CommodityId);

    //添加审核日志
    boolean addCourseauditLog(JsAuditLog auditLog);

    //根据课程id查询审核详情
    List<JsCourse> getAuditById(Integer courseId);



    //李佳豪
    //上传视频总量
    int getAllCourseUpperCount();
}
